跳到主要内容

语法错误

语法错误信息得到增强。它们包括量身定制的信息和代码片段,可以帮助新手程序员更快地发现问题。虽然这并不能改变游戏规则,但却很实用。

示例 1

有问题的代码
if a < b and t == 5 return "Gottem" end
Emitted Syntax Error
syntax error: file.pluto:1: expected 'then' to delimit condition.
1 | if a < b and t == 5 return "Gottem" end
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected 'then' symbol.

示例 2

有问题的代码
local fn = |a, b, c| => (a == b and a < c)
Emitted Syntax Error
syntax error: file.pluto:1: impromper lambda definition
1 | local fn = |a, b, c| => (a == b and a < c)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected '->' arrow syntax for lambda expression.

ANSI 颜色

这些错误支持着色,但默认情况下是禁用的。请在 luaconf.h 或联编配置中定义 PLUTO_USE_COLORED_OUTPUT 宏以启用彩色错误信息。

提示

对于 Windows 用户,可以使用以下命令启用 ANSI 着色支持:

  • REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1